package com.central.apps.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 预算接口类
 *
 * @author 李大超
 * @date 2023/3/27
 */
public interface BudgetService {

    /**
     * 更新预算金额相关信息
     *
     * @param proId 项目id
     * @param pbdId 预算明细id
     * @param usedAmt 实际发生金额
     * @throws Exception
     */
    void updateBudgetInfo(Integer proId, Integer pbdId, BigDecimal usedAmt) throws Exception;

    /**
     * 更新年度预算预算项占用/释放相关信息
     *
     * @param proId 项目id
     * @param pbiId 预算项id
     * @param applyAmt 申请金额
     * @param flag 占用/释放标记 true-占用, false-释放
     * @throws Exception
     */
    void budgetOccupyRelease(Integer proId, Integer pbiId, BigDecimal applyAmt, boolean flag) throws Exception;

    /**
     * 判断是否超预算
     *
     * @param proId 项目id
     * @param data 数据list
     * @return String
     * @throws Exception
     */
    String judgeBeyondBudget(Integer proId, List<Map<String, Object>> data) throws Exception;

    /**
     * 更新项目概算申请金额
     *
     * @param proId 项目id
     * @param data 数据list
     * @throws Exception
     */
    void updateBudgetApplyAmt(Integer proId, List<Map<String, Object>> data) throws Exception;
}
